home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 8
/
FM Towns Free Software Collection 8.iso
/
t_os
/
eastray
/
program
/
exten386
/
render.doc
< prev
next >
Wrap
Text File
|
1994-06-01
|
15KB
|
295 lines
□□□■■□□■□□□□□□□□□■□□■■□■□
□■■■□■□■□■■■□■■■□■□■□■□■□
□□□■□□□■□□□■□■□□■■□□□■□□□
□■■■□■□■■■□■□■□■□■□■□■■■□
□□□□□■□□□□□■□■□■■□□■□□□□□
Ray-tracing Renderer EASTRAY Version 1.97
Copyright(C) 1990-1994 T.Higashi(Nifty PEE01222)
・はじめに
EASTRAYはFM TOWNS用に開発されたレイトレーシングのレンダラーです。基本的には二次曲面のCSGでモデリングするタイプです。マッピングやシェーディングはほとんど個人の趣味で強化してあります。
・著作権,配付について
このプログラムの著作権は私,東 豊一郎が保有しています。
このプログラムを利用することは自由ですが,そのことによる損害が発生しても当方は関知致しません。ただし,バグなどの御指摘は歓迎します。できるだけ対処していきたいと思います。
配付に関しては制限をしません。そのときは必ずこのドキュメントも付けて配付し,作者にご連絡ください。また,ネットなどに転載した方は,バージョンアップがなされた時は最新版を必ず転載してください。
ソースを改変したものを個人的に使うことは制限しませんが,改変したソース・実行形式のプログラムを無断で第三者に再配付をすることは禁止します,必ず作者にご連絡下さい。
・起動方法
このプログラムは386ネイティブモードを使っているため,必ずDOS-EXTENDERを使用しないといけません。起動時のコマンドラインは次のようになります。
RUN386 RENDER.EXP ソースファイル名 オプション群
オプションには次のようなものがあります。
-Vオプション
-VD ボクセル関係のデフォルト値。「ソースファイル名.VOX」というファイルが作
成され保存される。またソースファイルよりも新しい.VOXファイルが存在する
とボクセル分割の処理を行わず,このファイルから読み込む。
-VL .VOXファイルの作成時間にかかわらず,.VOXファイルから読み込む。オブジェ
クトの形に変化が無い時はボクセル分割のデータは同じになるので色だけ変化
させた場合などに使う。ただし,オブジェクトが変化している場合には正しく
計算されないので取扱に注意すること。
-VM ボクセル分割だけをおこない,.VOXファイルに出力したところで終了する。
-VC 毎回ボクセル分割の計算をおこなう。.VOXファイルに出力しない。
-Mオプション
-M0
-M1
-M2 .MSGファイルの詳細度を変える。数字が少ないほど詳細。
-Eオプション
-E %S 環境変数EASTRAYを%Sに指定したことと同じ働きをします。
・終了方法
レンダリング中あるいはボクセル分割の途中でマウス(DOS-Extener汎用版はキーボード)のボタンを押すことによって強制停止させることができます。そのときエラーレベルの値を次のようになります。
正常終了・・・・・・・・・・・・・・・エラーレベル 0
異常終了・・・・・・・・・・・・・・・エラーレベル 1
ファイルの変更なし・・・・・・・・・・エラーレベル 2
左ボタン(スペースキー)で終了・・・・・エラーレベル 3
右ボタン(リターンキー)で終了・・・・・エラーレベル 4
・バージョンの履歴
V1.0 1990 8/18 リリース
V1.01 1990 8/25 リリース
・AND,OR,RANGEのブロックが正常に動作しないバグを訂正。
・移動コマンドの「:sx :sy :sz」が正常に動作しないバグを訂正。
テスト版その1
・計算時間が長くなると,計算時間の出力がおかしくなるバグを訂正。
・マッピングデータにiprファイルをサポート。
・内部処理を変更して高速化を計った。
・透明体の内部分岐のオン/オフをサポート。
・バンプマッピングを高品位化。
・Cook-Torranceのシェーディングをサポート。
・ミップマッピングをサポート。
・プリミティブタイプの追加。
・ポリゴンをサポート(monolith形式準拠)。
・スムースシェーディングをサポート。
・オブジェクト扱いの光源のサポート
・ソースデータ中にコメントが書けるようになりました。
テスト版その2
・ボクセル分割をサポート。
テスト版その3
・ボクセル分割のバグフィックス。
・論理演算の部分のアルゴリズムを改良,特に物体数が多い場合に高速化される。
テスト版その4
・ボクセル分割のバグフィックス。あるはずの物体が消える・・などということは
発生しなくなるはず。
テスト版その5
・ストキャスティック・サンプリングを使ったアンチエイリアジングのバグを修
正。
・内部分岐のON/OFF機能のバグを修正。conditionの第4パラメ-タを0に
するとOFF,1にするとONになる。
・ポリゴンで,不要な線が出てしまうバグを修正。
・移動コマンド「:sx :sy :sz」でポリゴンが正しく拡大縮小されないバグを修正。
・ポリゴンデータの読み込み中に無限ループに陥ってしまうバグを修正。ついでに
ソースデータの読み込み時のエラーチェックを強化。
・異方性反射2(円盤状のヘアライン仕上げ)で原点が物体のローカル座標ではな
く,ワールド座標でおこなわれてしまうバグを修正。
・ボクセル分割をおこなった時に,ボクセルより大きなポリゴンの場合,ボクセル
に登録されず,その結果ポリゴンに穴が開くバグを修正。
・ボクセル分割をおこなった時に,論理演算で符号が-1を指定すると物体内部の
ボクセルの形に不要な表面が現れるバグを修正。
・ボクセル分割をおこなった時に,レイの追跡の始点がボクセルエリア内にあると
き,ボクセルエリア外の物体が見えなくなるバグ(特に写り込みが消える事が多
い)を修正。
・メッセージ出力の画面出力をサポート。
テスト版その6
・球面マッピングなどでスジがでることがあるバグを修正。
・マッピングで2色モードtiffを使った時に画像がおかしくなるバグを修正。
・マッピングで16色モードtiffを使った時に,X方向のドット数が奇数の場
合に絵がずれるバグを修正。
・物体番号10番台のプリミティブで極性を-1にして透明体と論理演算すると絵
がおかしくなるバグを修正。
・物体番号10円錐1,物体番号14二葉双曲面1で中心軸ベクトルと逆方向に物
体が出来るバグを修正。
・物体番号14一葉双曲面1でボクセルを使うと一部欠けてしまうバグを修正。
・バンプマッピングで,全方向マッピング以外のマッピングを使うと正しくマッピ
ングが行われないバグを修正。
・バンプマッピングでマッピングデータの倍率kが二重に評価され,k*kがかけ
られていたバグを修正し,kにした。そのため,旧バージョンのデータを使う場
合は倍率をk*kに変更して使うこと。
・p_light,s_lightで光源より後ろに物体があると影がおかしくな
るバグを修正。
・レンジプリミティブの後に「;」を付けるようにフォーマットを変更。
・「色番号に対する移動コマンド」を「オブジェクト1つに対する移動コマンド」
にフォーマットを変更。
・3Dモードでレンダリングした場合,二つの画面を面順次で計算していたのを点
順次に変更。同時に二つのファイルが生成される。
・カラーナンバーマッピングに複数のマッピングをサポート。
・ボクセル分割の途中でもマウスのボタンを押すことによって強制停止させること
ができるようになった。また,それにともないエラーレベルの値を次のように変
更。
正常終了・・・・・・・・エラーレベル 0
異常終了・・・・・・・・エラーレベル 1
ファイルの変更なし・・・エラーレベル 2
左ボタンで終了・・・・・エラーレベル 3
右ボタンで終了・・・・・エラーレベル 4
・影を付けずにレンダリングするときは「condition」の「maxtn」を0とすること
によって指定していたが,新しく「shadow」ステートメントを追加した。これに
よって透明体でも影なしでレンダリングすることができるようになった。
・光源の指定に「n」「r」オプションを新設した。「n」オプションを指定すると,
その光源による影は計算されない。また,「r」オプションによって光の到達距
離を指定することができる。到達距離より遠いところはその光源による影は計算
されない。どちらのオプションとも適当に使うことにより,無駄な影の計算を省
略することができ,高速化を望める。「e_light」では「n」だけを,「p_light」
「s_light」では「n」「r」両方を使用できる。
・全てのオブジェクトに「n」オプションを新設した。「n」を指定すると,この物
体は影を作らない。ただし,他の物体からの影はこの物体上にできる。
・ソースファイルのインクルード機能をサポート。行頭に「#include ファイル名」
とすることによって読み込む。インクルードの入れ子構造も可能。
・マクロ機能をサポート。行頭に「#define マクロ名 マクロの内容」というふうに
マクロを宣言しておくと,それ以降のファイルの中でマクロ名をマクロの内容に
置き換える。
・アルファベットで始まる文字列に色番号を割り当てる機能をサポート。「color」
のなかで色の定義の順番を変えてもこの文字列で指定してあれば色番号を考える
必要が無くなる。
・アルファベットで始まる文字列にオブジェクトを割り当てる機能をサポート。パ
ーツをこれで定義しておいて,メインの「obj」から呼び出すことができる。入
れ子構造も可。
・自動再実行機能をサポート。ソースファイルとメッセージファイルの書き込み時
間を比較し,さらにメッセージファイルから最終計算ラインを読み取ってその続
きから計算を開始する。このとき,計算時間も引き継がれる。メッセージファイ
ルの方が新しく,全て計算が終了している場合はエラーレベル2で終了するので
,正常終了と区別できる。
・ボクセル分割情報のファイルへの保存をサポート。
・ボクセル関係の起動オプションを新設。
・出力ファイルが計算開始時に存在する場合には,そのファイルを表示する機能を
サポート。
V1.90 1991 8/10 リリース
・VOXEL分割の前処理時にメモリーが足りなくなった場合にメッセージを出さ
ないで終了していたバグを修正,メッセージが出力されるようになった。
・VOXEL分割を使わない指定VOXEL 0 ;を指定するとエラーが発生するバグ(
テスト版その6から発生)を修正。
・分配レイトレーシングを使ったアンチエイリアジング(antiの第一パラメ-タが
正の値を指定した時)のバグを修正。きれいにジャギーが取れるようになった。
・透明体に透明度マッピング等を行った場合に,影が正しく色付きにならないバグ
を修正。
・ストキャスティックサンプリングを使ったアンチエイリアジング(antiの第一パ
ラメ-タが負の値を指定した時)のアルゴリズムを変更。ざらつく感じが緩和さ
れる。
・画面表示を変更。panel.expに準拠。
・アルファベットで始まる文字列にマッピングデータを割り当てる機能をサポート
。「map_data」のなかでマッピングデータの定義の順番を変えてもこの文字列で
指定してあれば番号を考える必要が無くなる。
・α出力をサポート。outputの出力ファイルの拡張子を「.HPI」にするとRGBα
というようなα出力付きのデータを出力する。
HPI形式はHyPER[彩子](開発元(株)アートファンクション,発売元(
株)デジタルアーツ)で使用されているグラフィックフォーマットです。
・別ファイルのグラフィックデータを背景に合成する機能をサポート。これに伴い
「input」「back_mode」ステートメントを新設。
・コンスタントシェーディングをサポート。物体に影を付けないオプションと併用
することによって点光源などの光源を目に見えるように表示するなどの表現が可
能になる。
・移動コマンドに直接マトリクスを指定する「:mtx」を追加。
V1.91 1991 / リリース
・オブジェクト扱いの光源が,「そのオブジェクトだけ移動させる移動コマンド」
を指定した時に正常に動作しないバグを修正。
V1.95
・背景合成時に縦長のファイルがうまく合成できないバグを修正。
・オーバーレイ起動に対応。
・マッピングデータにフルカラーTIFF,圧縮TIFFを使えるように対応。
・-eオプションでeastrayのパスを指定できるようになり,環境変数が要ら
なくなった。
V1.96
・終了時にファイルポインタをクローズしないことがあるバグを修正。SUPPORTか
ら使っていても正常に使えるようになった。
・VOXEL分割処理の途中経過表示がおかしいバグを修正。
V1.96c
・V1.96で取り残していた、終了時にファイルポインタをクローズしないことがあ
るバグを完全修正。SUPPORTから使っていても正常に使えるようになった。
・V1.96でエンバグしてしまったVOXEL分割情報を読み込みが正常にできないバグを
修正。
・物体番号10,12のオプションを修正。
・タブレット対応。
・フルカラーTIFF出力、32kTIFFのときにディザリングをサポート。
これにともなって「output_mode」ステートメントを新設。
V1.97
・物体番号20、ポリゴンでX,Y,Zの各軸方向にごく近い法線の場合、うまく
レンダリング出来ないバグを修正。
・異方性反射2で傷方向ベクトルと法線が等しいとシェーディングが真っ白に
なってしまうバグを修正。
主要機能表
-----------------------------------------------------------------------------
扱えるプリミ |二次曲面。円柱・直方体などの二次曲面を論理演算したもの。
ティブの種類 |ポリゴン(monolith形式準拠)。ポリゴンはスムースシェーディングを
|サポート。ポリゴンで透明体を作った場合,屈折表現可能。
|物体数はメモリーの大きさによってのみ制限。
-----------------------------------------------------------------------------
論理演算機能 |AND・ORのブロックが可能。またレンジプリミティブが可能。
|ツリー構造をとり,ネスティングの深さは任意。
-----------------------------------------------------------------------------
移動機能 |平行・回転・拡大縮小・アフィン行列直接指定が可能。
-----------------------------------------------------------------------------
空間分割 |ボクセル分割法をサポート。ボクセルデータをファイルに出力可。
-----------------------------------------------------------------------------
シェーディング|ブリンシェーディング(2種),異方性反射,Cook-Torranceシェーディ
機能 |ング,コンスタントシェーディング。反射・透明体の表現が可能。
|ほぼ全てのパラメ-タにマッピングが可能。さらに物体に色を割り
|あてる時にマッピングで複数の色を割り当てる属性マッピングが
|可能。バンプマッピングが可能。
-----------------------------------------------------------------------------
マッピング |平面マッピング・球状マッピング・環状マッピング・円柱状マッピ
|ング・全方向マッピングが可能。ほぼ全てのシェーディングパラメ
|ータにマッピングが可能。同一のパラメ-タに任意の枚数のマッピ
|ングが可能。物体の距離などによらず高品位なマッピングが可能な
|ミップマッピングが可能。
-----------------------------------------------------------------------------
光源 |無限遠光源・点光源・スポットライトが使用可能。また,周辺光・
|空の色・デプス効果・ミスト効果が可能。影の有無などこまかな
|設定が可能。オブジェクト扱いの光源(物体とともに移動コマンド
|で移動する)が可能。光源の数はメモリーの大きさによってのみ制限。
-----------------------------------------------------------------------------
アンチエイリア|分散・分配レイトレーシング。しきい値・レベルが指定可。
ス機能 |
-----------------------------------------------------------------------------
出力ファイル |FAL+RGB,TIFF(TOWNS32K),HPI(フルカラー無圧縮α情報付き)が可能。
|HPI出力時にはα合成情報を出力可。また,他のモードでもレンダラ
|内部で合成が可能。
-----------------------------------------------------------------------------
立体視機能 |右目・左目用の出力ファイルを別々に出力可能。
-----------------------------------------------------------------------------